package cn.tedu.ivos.base.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {
    /**
     * 配置CORS规则，允许跨域请求
     * 通过此方法，可以指定哪些前端源地址可以访问后端服务，
     * 以及允许的HTTP请求方法和头部信息等
     *
     * registry 用于注册CORS映射规则的对象
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 配置跨域请求的映射规则
        registry.addMapping("/**")// 表示后端允许前端发过来的任意请求
                .allowedHeaders("*") // 允许的所有请求头
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")// 允许的请求方法，包括GET、POST、PUT、DELETE和OPTIONS
                .allowedOriginPatterns("http://localhost:9090")// 允许的前端源地址模式，此处指定为本地开发环境的地址
                .allowCredentials(true) // 允许携带认证信息进行跨域请求
                .maxAge(3600);// 预检请求的有效期，单位为秒，用于浏览器缓存预检请求结果

    }
}
